/*----------------------------------------------------------------------*
 * コンポーネント名 : サイト更新の関連スクリプト
 * 最新バージョン   : v1.0
 * 作成日           : 2012/08/11
 * 担当者           : 野島賢三
 * 内容             : 新規作成
 *【改訂履歴】
 *----------------------------------------------------------------------*/
/**
 * init function
 */
$('document').ready(function(){
	// 入力フォームを初期化しフォーカス
	$('#new_info_limit').focus();
	$('#in_title').focus();
	if ($("#in_content") != null) {
		// CLエディター設定
		$("#in_content").cleditor({
			width : 530,
			height: 160,
			controls:     // controls to add to the toolbar
	            "bold italic underline strikethrough | font size " +
	            "style | color highlight removeformat | " +
	            "rule link unlink | undo redo source"
		}).focus();
	}
	if($("body").height() < 800 ) {
			$('#dataList-top').hide();
	}
});

$(function(){
	// プレビューボタンが押下された場合の処理
	$('#reloadPreview').click(function() {
		if($('#previewContent').is(':hidden')) {
			// ステータス情報をクリア
			$('#errMessageDate').html('');
			$('#errMessageContent').html('');
			$('#compMessage').html('');
			if ($('#resistFor').val() == 'CampaignInfo') {
				$('#errMessageTitle').html('');
			}
			var errCheck = true;
			// 実在日チェック
			if (!checkdate($('#in_publish_ymdMonth').val(),$('#in_publish_ymdDay').val(),$('#in_publish_ymdYear').val())) {
				// エラーメッセージをセット
				$('#errMessageDate').text("実在日ではありません。");
				errCheck = false;
			}
			// 必須項目チェック
			if (!checkRequiredInput($(".cleditorMain iframe").contents().find('body').text())) {
				// エラーメッセージをセット
				$('#errMessageContent').text("内容が未入力です。");
				errCheck = false;
				$('#in_content').cleditor().focus();
			}
			if ($('#resistFor').val() == 'CampaignInfo') {
				if (!checkRequiredInput($('#in_title').val())) {
					$('#errMessageTitle').text("キャンペーン名が未入力です。");
					errCheck = false;
					$('#in_title').focus();
				}
			}
			if (errCheck) {
				$('#previewContent').slideDown('fast');
				// 登録年月日を出力する
				$('#previewPublishY').html($('#in_publish_ymdYear').val() + '-');
				$('#previewPublishM').html($('#in_publish_ymdMonth').val() + '-');
				$('#previewPublishD').html($('#in_publish_ymdDay').val());
				// タイトルを出力
				if ($('#in_title') != null) {
					$('#previewContentForCampaignTitle').html($('#in_title').val());
				}
				var txtVal = $(".cleditorMain iframe").contents().find('body').html();
				// 改行コードを改行タグに変換し出力する
				$('#previewContentForContent').html(replaceBR(txtVal));
				// 表示されている高さを取得し、自動的にスクロールを行う
				$("#previewContent").scrollTop($("#previewContent").get(0).offsetHeight);
				$('#previewBtn').hide();
				$('#publish_btns').show();
				$('#infoBtns').show();
				$('#previewCanBtn').show();
				// 入力ブロックまでスクロールする
				scrollToTarget('#errMessageContent', 500);
			} else {
				scrollToTarget('#newInfoInputBlock', 100);
			}
		}
	});
	// プレビュー時にキャンセルボタンを押下した場合の処理
	$('#previewCanBtn').click(function(){
		// プレビューが表示されている場合
		if(!$('#previewContent').is(':hidden')) {
			// プレビューを隠す
			$('#previewContent').slideUp('fast');
			// 公開設定を隠す
			$('#publish_btns').hide();
			// プレビューボタンを表示
			$('#previewBtn').show();
			// 登録／更新ボタンを隠す
			$('#infoBtns').hide();
			// 入力ブロックまでスクロールする
			scrollToTarget('#newInfoInputBlock', 500);
		}
		// 内容にフォーカスをあてる
		$('#in_content').cleditor().focus();
		$('#previewCanBtn').hide();
	});
	// プレビュー時に登録または編集を押下した場合の処理
	$('#confirmAdd, #confirmEdit').click(function(event){
		// 確認画面を表示させる
		// ターゲットオブジェクトを取得
		var target = $(event.target);
		// 要素のIDを取得
		var elementId = target.attr('id');
		if (elementId == 'confirmAdd') {
			$('#confirm_pattern').text('登録しますか？');
			$('#addBtn').show();
		} else if (elementId == 'confirmEdit') {
			$('#confirm_pattern').text('更新しますか？');
			$('#editBtn').show();
		}
		// モーダルダイアログを表示
		confirmblockUI('#confirm_resist');
		return false;
	});
	// 登録ボタンが押下された場合の処理
	$('#resistInfo').click(function(event){
		$('#confirm_buttons').hide();
		resistData('add');
	});
	// 編集ボタンが押下された場合の処理
	$('#editInfo').click(function(){
		$('#confirm_buttons').hide();
		resistData('edit');
	});
	// 確認画面でキャンセルボタンが押下された場合の処理
	$('#resistCan').bind('click', $.unblockUI);
	// クリアボタンが押下された場合の処理
	$('#clearInfo').click(function(){
		resetAll();
	});
});

/**
 * 引数で受け取ったパターンに応じて
 * 登録・更新処理を行う
 * @param resitPattern
 */
function resistData(resistPattern) {
	var compMsg = null;
	var id = null;
	if (resistPattern == 'add') {
		compMsg = '登録完了しました';
	} else if (resistPattern == 'edit') {
		compMsg = '更新完了しました';
		id = $('#in_id').val();
	}
	sendingAction(
		function () {
			var in_content = $(".cleditorMain iframe").contents().find('body').html()
			if ($('#resistFor').val() == 'NewInfo') {
				// POST送信を行う
				$.post('/yosaparkriche.com/new_infos/'+ resistPattern,{
				id : id,
				content:in_content,
				// 公開日付のフォーマット編集
				publish_ymd:editYmd(
						$('#in_publish_ymdYear').val(),$('#in_publish_ymdMonth').val(),$('#in_publish_ymdDay').val()),
				// ラジオボタンで選択された値を選択
				publish_flg:$('input[name="data\[NewInfo\]\[publish_flg\]"]:checked').val()
				}, function(rs){
					// コールバック関数
					if (rs.indexOf('result_ng') == -1) {
						// エラーがなければ登録データを画面に追加する
						$('#compMessage').html(compMsg).fadeIn('slow');
						setTimeout("location.reload()",1000);
					} else  {
						// エラーメッセージを出力
						$('#errMessage').html(rs);
						$.unblockUI();
					}
				});
			} else if ($('#resistFor').val() == 'CampaignInfo') {
				// POST送信を行う
				$.post('/yosaparkriche.com/campaign_infos/' + resistPattern,{
				id : id,
				title:$('#in_title').val(),
				content:in_content,
				// 公開日付のフォーマット編集
				publish_ymd:editYmd(
						$('#in_publish_ymdYear').val(),$('#in_publish_ymdMonth').val(),$('#in_publish_ymdDay').val()),
				// ラジオボタンで選択された値を選択
				publish_flg:$('input[name="data\[CampaignInfo\]\[publish_flg\]"]:checked').val()
				}, function(rs){
					// コールバック関数
					if (rs.indexOf('result_ng') == -1) {
						// エラーがなければ登録データを画面に追加する
						$('#compMessage').html(compMsg).fadeIn('slow');
						setTimeout("location.reload()",1000);
					} else  {
						// エラーメッセージを出力
						$('#errMessage').html(rs);
					}
				});
			}
		});
}

$(function() {
	$('.tdUpdBtn button').click(function(event){
		// ステータス情報をクリア
		$('#errMessageDate').html('');
		$('#errMessageContent').html('');
		$('#compMessage').html('');
		if ($('#resistFor').val() == 'CampaignInfo') {
			$('#errMessageTitle').html('');
		}
		// ターゲットオブジェクトを取得
		var target = $(event.target);
		// 要素のIDを取得
		var elementId = target.attr('id');
		// IDを分割
		var temp = elementId.split('_');
		// 更新タイプを取得
		var updType = temp[0];
		// IDを取得
		var id = temp[1];
		// Ajaxリクエスト終了時にブロックを非表示にする
		$().ajaxStop($.unblockUI);

		if (updType == 'edit') {
			// 編集用関数を実行
			edit(id);
		} else if (updType == 'del') {
			// 削除用関数を実行
			del(id);
		}
	});

	/**
	 * 編集ボタンを押下した際に呼び出されるfunction
	 * @param id データのレコードID
	 */
	function edit (id) {
		// 公開年月日
		var publish_ymd = $('#publish_ymd_' + id).text().split('-');
		// 内容
		// 改行コードを削除
		var content = $('#content_' + id).html().replace(/(\r\n|\n\r|\n|\r)/ig, '');
		// 改行タグを改行コードに変換
		content = content.replace(/(<br>|<br \/>)/ig,"\n");
		// 公開フラグ
		var publish_flg = $('#publishFlgChg_' + id).val();
		// キャンペーン名
		var title = null;
		if ($('#title_' + id).text() != '') {
			title = $('#title_' + id).text();
		}
		// ブロックを表示
		$.blockUI({ message: '<br><h5>データを取得しています...</h5>',
					fadeIn : 400,
					fadeOut: 800,
					timeout: 1200,
					showOverlay: false,
			css: { width: '200px',
				   height: '50px',
				   textAlign: 'center',
				   padding: '6px',
				   backgroundColor: '#000',
	               '-webkit-border-radius': '10px',
	               '-moz-border-radius': '10px',
	               opacity: .6,
	               color: '#fff'
			},
			onUnblock: function() {
				$('#in_id').val(id);
				$('#in_publish_ymdYear').val(publish_ymd[0]);
				$('#in_publish_ymdMonth').val(publish_ymd[1]);
				$('#in_publish_ymdDay').val(publish_ymd[2])
				$('#in_content').val(content);
				if (title != null && title != '') {
					$('#in_title').val(title);
				}
				// 公開フラグのラジオボタン設定
				if (publish_flg == 0) {
					$('input[name="data\[CampaignInfo\]\[publish_flg\]"],input[name="data\[NewInfo\]\[publish_flg\]"]').val(["1"]);
				} else {
					$('input[name="data\[CampaignInfo\]\[publish_flg\]"],input[name="data\[NewInfo\]\[publish_flg\]"]').val(["0"]);
				}
				// 登録ボタンを隠す
				$('#resistInfoBtn').hide();
				// 入力フォームの表示を編集表記に
				$('#updType').html('編集');
				// 編集ボタンを表示
				$('#editNewInfoBtn').show();
				// やり直しボタンを隠す
				$('#previewCanBtn').hide();
				// 内容にフォーカスをあてる
				$('#in_content').cleditor().focus();
				if (title != null) {
					$('#previewCampaignTitle').html(title);
				}
				// 改行コードを改行タグに変換
				$(".cleditorMain iframe").contents().find('body').html(replaceBR($('#in_content').val()));
				// 公開年月日・年にセット
				$('#previewPublishY').html($('#in_publish_ymdYear').val() + '-');
				// 公開年月日・月にセット
				$('#previewPublishM').html($('#in_publish_ymdMonth').val() + '-');
				// 公開年月日・日にセット
				$('#previewPublishD').html($('#in_publish_ymdDay').val());
				// プレビューが表示されている場合
				if(!$('#previewContent').is(':hidden')) {
					// プレビューを隠す
					$('#previewContent').slideUp('fast');
					// 公開設定を隠す
					$('#publish_btns').hide();
					// プレビューボタンを表示
					$('#previewBtn').show();
					// 登録／更新ボタンを隠す
					$('#infoBtns').hide();
				}
				// 入力フォームまでスクロール
				scrollToTarget('#newInfoInputBlock', 300);
				return false;
			}
		});
	}

	/**
	 * 削除ボタンを押下された場合に呼び出されるfunction
	 * @param id データのレコードID
	 */
	function del (id) {

		$('#delBtn').show();
		$('#confirm_pattern').text('削除しますか？');
		// モーダルダイアログを表示
		confirmblockUI('#confirm_resist');

		$('#delInfo').click(function(){
			$('#confirm_buttons').hide();
			sendingAction(function(){
				// どのデータを削除するかを取得
				resistFor = $('#resistFor').val();
				url = null;
				resultLocation = null;
				if (resistFor == 'NewInfo') {
					// INFORMATION更新ページから呼ばれた場合
					url = '/yosaparkriche.com/new_infos/del';
					resultLocation = '/yosaparkriche.com/new_infos/index/del';
				} else if (resistFor == 'CampaignInfo') {
					// Campaign更新ページから呼ばれた場合
					url = '/yosaparkriche.com/campaign_infos/del';
					resultLocation = '/yosaparkriche.com/campaign_infos/index/del';
				}
		      	// POST送信を行う
				$.post(url,{
				// 削除対象のID
				id:id
				}, function(rs){
					// コールバック関数
					if (rs.indexOf('result_ng') == -1) {
						// エラーがなければ登録データを画面に追加する
						$('#compMessage').text('削除しました。').fadeIn('slow');
						setTimeout("location.reload()",1000);
					} else  {
						// エラーメッセージを出力
						$('#errMessage').html(rs);
						$.unblockUI();
					}
				});
			});
		});
	}
});
$(function(){
	var elementId;
	$('.userInfoBlock button').click(function(event){
		// ターゲットオブジェクトを取得
		var target = $(event.target);
		// 要素のIDを取得
		elementId = target.attr('id');
		// 単項目チェックを行う
		checkFlg =checkUserInfoValue(elementId);
		if (checkFlg) {
			$('#changeBtn').show();
			$('#confirm_pattern').text('変更しますか？');
			// モーダルダイアログを表示
			confirmblockUI('#confirm_resist');
		}
		return false;
	});
	$('#changeInfo').click(function(){
		$('#confirm_buttons').hide();
		sendingAction(
			function () {
				if (elementId == 'editNewInfoLimit') {
					// POST送信を行う
					$.post('/yosaparkriche.com/user_info/edit/'+ elementId,{
					id : '1',
					new_info_limit:$('#new_info_limit').val()
					}, function(rs){
						// コールバック関数
						if (rs.indexOf('result_ng') == -1) {
							// エラーがなければ登録データを画面に追加する
							$('#compMessage').text('変更しました。').fadeIn('slow');
							setTimeout('location.reload()',1000);
						} else  {
							// エラーメッセージを出力
							$('#errMessage').html(rs);
							$.unblockUI();
						}
					});
				} else if (elementId == 'editCampaignInfoLimit') {
					// POST送信を行う
					$.post('/yosaparkriche.com/user_info/edit/'+ elementId,{
					id : '1',
					campaign_info_limit:$('#campaign_info_limit').val()
					}, function(rs){
						// コールバック関数
						if (rs.indexOf('result_ng') == -1) {
							// エラーがなければ登録データを画面に追加する
							$('#compMessage').text('変更しました。').fadeIn('slow');
							setTimeout('location.reload()',1000);
						} else  {
							// エラーメッセージを出力
							$('#errMessage').html(rs);
							$.unblockUI();
						}
					});
				} else if (elementId == 'editUserInfo') {
					// POST送信を行う
					$.post('/yosaparkriche.com/user_info/edit/'+ elementId,{
					id : '1',
					username:$('#username').val(),
					password:$('#password').val()
					}, function(rs){
						// コールバック関数
						if (rs.indexOf('result_ng') == -1) {
							// エラーがなければ登録データを画面に追加する
							$('#compMessage').html('変更しました。').fadeIn('slow');
							setTimeout("location.reload()",1000);
						} else  {
							// エラーメッセージを出力
							$('#errMessage').html(rs);
							$.unblockUI();
						}
					});
				}
		});
	});
});
